A business object is a software entity representing real-world items used during the transaction of business. For example, a business object may represent a business document such as a sales order, a purchase order, or an invoice. A business object may also represent items such as a product, a business partner, or a piece of equipment.
A business object may include business logic and/or data having any suitable structure. The structure of a business object may be determined based on the requirements of a business scenario in which the business object is to be deployed. A business solution for a particular business scenario may include many business objects, where the structure of each business object has been determined based on the requirements of the particular business scenario.
A customer deploying a business solution may desire changes to the business objects included in the business solution. For example, a customer may require a field (e.g., “Hobbies”) which does not exist within the standard “Business Partner” business object of a business solution. Moreover, the customer may wish to associate the field with a new business object node to support a 1:n cardinality (i.e., a single business partner may have more than one hobby).
Conventional techniques do not allow the addition of fields having a 1:n cardinality with an existing node/field. Although it does not support 1:n cardinality, an APPEND mechanism may be used to add a field to an existing node of a business object by changing the definition of the business object at the data dictionary level. An entire database system must be recompiled to effect such a change, and the change occurs globally with respect to all instantiations of the business object within the system.
In some scenarios, particularly service-on-demand scenarios, multiple customers (tenants) receive services from a single application platform. If one of the multiple tenants adds an extension field to a business object using a conventional technique as described above, each other tenant would be forced to adapt to the additional extension field.
Systems for adding a node and corresponding extension field to a business object are desired. Such a system may reduce a need for recompiling the application platform, may enable one or more tenants to add one or more extension nodes/fields, and/or may provide tenant-specific views of tenant-specific nodes/fields.